/*******************************************************************************
 *
 * Trace Object definition
 *
 ******************************************************************************/

#ifndef TRACE_OBJ_H
#define TRACE_OBJ_H

#include <string>
#include "TraceMacros.h"

namespace tsc
{
namespace common
{

class TraceObj
{
public:
  TraceObj(const char* pName);

  ~TraceObj();

  bool isEnabled(traceGroup_e group);

  void enable(traceGroup_e group);
  void disable(traceGroup_e group);

  void enableAll();
  void disableAll();

  std::string* getName();

private:
  bool        _traceState[END_GROUP];
  std::string _name;
};

} // namespace common
} // namespace tsc

#endif // TRACE_OBJ_H
